package com.cetool.autocms.mapper.user;

import com.cetool.autocms.pojo.domain.user.ClientUserInfoDO;
import com.cetool.autocms.pojo.param.user.QueryClientUserListParam;
import com.cetool.autocms.pojo.param.user.SaveClientUserParam;
import com.cetool.autocms.pojo.param.user.UpdateClientUserParam;

import java.util.List;

/**
 * 客户端用户管理持久层
 *
 * @author 戴越
 * @date 2021/11/16
 */
public interface ClientUserMapper {

    /**
     * 新增客户端用户
     *
     * @param param 新增用户请求参数实体
     * @return int
     * @author 戴越
     * @date 2021/11/9
     */
    int saveClientUser(SaveClientUserParam param);

    /**
     * 查询客户端用户是否存在
     *
     * @param param 新增用户请求参数实体
     * @return int
     * @author 戴越
     * @date 2021/11/9
     */
    int queryClientUserIsExist(SaveClientUserParam param);

    /**
     * 查询客户端用户列表
     *
     * @param param 分页查询客户端用户信息请求实体
     * @return 客户端用户信息对象
     * @author 戴越
     * @date 2021/11/10
     */
    List<ClientUserInfoDO> listClientUser(QueryClientUserListParam param);

    /**
     * 根据用户id查询客户端用户信息详情
     *
     * @param userId 用户主键id
     * @return 客户端用户信息对象
     * @author 戴越
     * @date 2021/11/10
     */
    ClientUserInfoDO getClientUser(Integer userId);

    /**
     * 根据用户id删除客户端用户信息
     *
     * @param userId 用户主键id
     * @return int
     * @author 戴越
     * @date 2021/11/10
     */
    int deleteClientUser(Integer userId);

    /**
     * 修改客户端用户信息
     *
     * @param param 修改客户端用户请求参数实体
     * @return int
     * @author 戴越
     * @date 2021/11/10
     */
    int updateClientUser(UpdateClientUserParam param);

}
